package cn.seaboot.html.table;

import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.VerticalAlignment;

import java.awt.*;

/**
 * html 单元格
 * <p>
 * 对应于 html 中的 colgroup 标签
 *
 * @author Mr.css
 * @version 2025-06-25 18:04
 */
public class Col {

    /**
     * 属性应用到多少列
     */
    private int span;

    /**
     * 列宽
     * <p>
     * IDE 不推荐，但是所有浏览器支持
     */
    private int width;

    /**
     * 样式
     * <p>
     * 通过 CSS 控制样式（推荐），所有浏览器支持
     */
    private String style;

    /**
     * 水平对齐方向
     * <p>
     * 支持：主流浏览器（不推荐），通过样式替代
     */
    private HorizontalAlignment align;

    /**
     * 垂直对齐方向
     * <p>
     * 支持：主流浏览器（不推荐），通过样式替代
     */
    private VerticalAlignment valign;
    /**
     * 背景色
     * <p>
     * 支持：主流浏览器（不推荐），通过样式替代
     */
    private Color backgroundColor;

    public int getSpan() {
        return span;
    }

    public void setSpan(int span) {
        this.span = span;
    }

    public int getWidth() {
        return width;
    }

    public void setWidth(int width) {
        this.width = width;
    }

    public String getStyle() {
        return style;
    }

    public void setStyle(String style) {
        this.style = style;
    }

    public HorizontalAlignment getAlign() {
        return align;
    }

    public void setAlign(HorizontalAlignment align) {
        this.align = align;
    }

    public VerticalAlignment getValign() {
        return valign;
    }

    public void setValign(VerticalAlignment valign) {
        this.valign = valign;
    }

    public Color getBackgroundColor() {
        return backgroundColor;
    }

    public void setBackgroundColor(Color backgroundColor) {
        this.backgroundColor = backgroundColor;
    }

    @Override
    public String toString() {
        return "ColGroup{" +
                "span=" + span +
                ", width=" + width +
                ", style='" + style + '\'' +
                ", align=" + align +
                ", valign=" + valign +
                ", backgroundColor=" + backgroundColor +
                '}';
    }
}
